Image sensors such as cameras and webcams are becoming ever more widely used in association with computing devices. There is a growing interest in using multiple image sensors at one time in the same setting. This can allow for the same scene to be captured from multiple vantage points, allowing a user to alternate between vantage points in a webcam experience, a game, or a video playback, or allowing multiple images to be combined to create a three-dimensional viewing experience, such as for a movie, a virtual reality application, or a webcam interaction.
However, providing two or more image sensor inputs simultaneously and synchronously over a single interface, together with control output to multiple image sensors, poses substantial challenges for the hardware and/or software that handles the input and output data. For example, one typical arrangement may include multiple universal serial bus (USB) webcams that are all meant to stream image data simultaneously to a host computer. A typical way-to make this arrangement work may be to have multiple USB webcam control circuits, one connected to each of the USB webcams, with all the USB webcam control circuits connected to an embedded USB hub.
However, such an implementation would be costly for the hardware and complex for the software. For hardware, one webcam controller circuit for each webcam, plus an embedded USB hub, adds up to a significant cost. For software, each webcam controller would appear as a separate USB device, which would complicate device setup in the operating system for the user, and add processing overhead if further image processing is required on multiple input video streams. Each of the webcam controller circuits would have to negotiate with the host controller for its own USB bandwidth, reducing the efficiency of the USB bandwidth and preventing any guarantee of equal USB bandwidth among the different webcams. In some cases, one or more of the webcams might not be allocated any bandwidth at all. Unallocated or low bandwidth means no guarantee of frame to frame synchronization between the signals from the different webcams. Lack of frame synchronization would give rise to a catastrophic error mode if the software application required frame-synchronized input video from the different image sensors, such as for stereo combination of the webcam images, which would then be impossible.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.